package com.xquant.marketdata.curvestrip.mapper;

import com.xquant.marketdata.curvestrip.domain.VolsurfaceDTO;
import com.xquant.marketdata.curvestrip.entity.TvolsurfaceRatesDTO;
import org.springframework.stereotype.Repository;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Author yunnuo.yang
 * @Date 2020/9/22 10:13
 * @Description
 **/
@Repository
public interface VolatilityCurveStripMapper {

    List<Map> queryVolatilityCurveByPage(Map<String, Object> param);

    List<VolsurfaceDTO> queryVolatilityCurveDTOByPage(Map<String, Object> param);

    List<VolsurfaceDTO> queryVolSurfaceCombox(Map<String,Object> param);

    void deleteVolatilityCurve(Map<String, Object> param);

    void insertVolatilityCurve(Map<String, Object> param);

    void updateVolatilityCurve(Map<String, Object> param);

    List<Map> queryVolatilityCurveRefSetByPage(Map<String, Object> param);

    void insertVolSurfaceRatesList(List list);

    void insertVolatilityCurveRefSet(Map<String, Object> param);

    void deleteVolatilityCurveRefSetByDate(Map<String, Object> param);

    void updateVolatilityCurveRefSet(Map<String, Object> param);

    List<Map> queryVolSurfaceRates(Map<String, Object> param);
    List<Map> getLastDateByVlsCode(Map<String, Object> param);

    List<Map> queryRealTimeVolSurfaceRates(Map<String, Object> param);

    void deleteVolSurfaceRates(Map<String, Object> param);
    int insertVolSurfaceRates(Map<String, Object> param);

    int updateVolSurfaceRates(Map<String, Object> param);

    List<Map> queryVolRateForCone(Map<String, Object> param);

    List<Map> queryVolCone(Map<String, Object> param);

    void deleteVolSurfaceRatesList(Map map);

    TvolsurfaceRatesDTO getLastVolSurfaceRates(TvolsurfaceRatesDTO tvolsurfaceRatesDTO);

    void updateVolSurfaceRatesendDate(TvolsurfaceRatesDTO tvolsurfaceRatesDTO);

    void updateVolSurfaceRatesByBegDate(Map<String, Object> map);

    String getNextDay(HashMap<String,Object> hashMap);

    void updateVolSurfaceRate(TvolsurfaceRatesDTO form);


    String getDeptAncestors(String deptId);

    void batchInsertSurfaceUser(List<VolsurfaceDTO> map);

    void batchInsertSurfaceDept(Map map);

    int removeUserPermSurface(Map map);

    int removeDeptPermSurface(Map map);

    void removeUserPermSurfaceByUserId(Map param);

    void removeDeptPermSurfaceByDeptId(Map param);

    void removeUserSurfaceByVlsCode(Map param);

    void removeDeptSurfaceByVlsCode(Map param);

    void updateUserPermSurface(Map<String, Object> params);

    void updateDeptPermSurface(Map<String, Object> params);

    String querySurfaceFlagByUserId(String userId);


    List<Map> querySurfaceDept(Map<String, Object> param);

    void saveSurfaceDept(Map<String, Object> param);

    void updateSurfaceDept(Map<String, Object> param);

    void deleteSurfaceDept(Map<String, Object> param);

    List<Map> querySurfaceUserPerm(Map<String, Object> param);

    void saveSurfaceUser(Map<String, Object> param);

    void updateSurfaceUser(Map<String, Object> param);

    void deleteSurfaceUser(Map<String, Object> param);

    List<VolsurfaceDTO> checkVolatilityCurve(Map<String, Object> param);
}
